package main

import (
	"gitee.com/dreamwood/ez-maker/maker"
)

func Plan() {
	c := maker.CreateTable("Plan", "生产计划", "mes")
	c.AddText("sn", "计划单号")
	c.AddText("name", "计划名")
	c.AddDateTime("startAt", "计划开始时间")
	c.AddDateTime("targetAt", "计划完成时间")
	c.AddDateTime("finishAt", "实际完成时间")
	//生产
	c.AddInt("numPlan", "计划数量")
	c.AddInt("numDone", "完成数量").SetDesc("入库")
	//订单
	c.AddInt("numNeed", "需求数量")
	c.AddInt("numFeed", "交付数量").SetDesc("发货")

	c.AddManyToOne("type", "计划类型", "PlanType")
	c.AddManyToOne("group", "计划分组", "PlanGroup")
	c.AddText("flag", "计划标记")

	c.AddManyToOne("task", "任务", "Task").SetDesc("这里的任务就是产品，在其他场景下可能是一项工作或者其他任务")
	c.AddManyToOne("executor", "执行者", "Executor")

	c.AddManyToOne("status", "任务状态", "PlanStatus")
	c.AddBool("isFinish", "是否完成")
	c.AddBool("isStop", "是否中止")

	//子计划设置
	c.AddManyToOne("parent", "父计划", "Plan")
	c.AddOneToMany("sons", "子计划", "Plan").SetFk("ParentId")
	c.AddBool("isSonsLiner", "子计划类型").SetDesc("true:串行，最后一道工序的完成量，反馈到父级；false:并行，所有工序完成量的合计反馈到父级")

	//任务前后顺序
	//c.AddManyToMany("waits", "前置任务", "Plan").SetIsControl(true)

	c.AddCreateAt()
	c.AddCreateBy()
	c.AddUpdateAt()
	c.AddDelete()
	c.AddLock()
	c.Generate()
}
func PlanType() {
	c := maker.CreateTable("PlanType", "计划类型", "mes")
	c.AddName()
	c.Generate()
}
func PlanGroup() {
	c := maker.CreateTable("PlanGroup", "计划分组", "mes")
	c.AddName()
	c.Generate()
}
func PlanStatus() {
	c := maker.CreateTable("PlanStatus", "计划状态", "mes")
	c.AddText("name", "名称")
	c.LoadStatus()

	c.LoadTree()
	c.Generate()
}

func Executor() {
	c := maker.CreateTable("Executor", "执行者", "mes")
	c.AddText("name", "名称")
	c.LoadTree()
	c.Generate()
}
func Task() {
	c := maker.CreateTable("Task", "任务", "mes")
	c.AddText("name", "名称")
	c.AddText("info", "参数")
	c.AddInt("outId", "outId")
	c.AddText("outSrc", "outSrc")
	c.Generate()
}
